﻿/*************************************
 * Creator:SW-PeiYang
 * DateTime:2025/8/27 14:57:42
 * Description:<Description>
 * CopyRight:中广核研究院有限公司
 * ***********************************/

namespace SunnyPaine.Autofac.Extension.Mvvm.UI
{
    /// <summary>
    /// 提供用户可以指定一个或多个要打开的文件的文件名。
    /// </summary>
    public interface IOpenFileDialogService
    {
        /// <summary>
        /// 如果用户省略了扩展名，文件对话框是否自动补齐扩展名。如果启用则为 true ，否则为 false 。
        /// </summary>
        bool AutoAddExtension { get; set; }
        /// <summary>
        /// 当用户指定不存在的文件名，文件对话框是否显示警告。
        /// </summary>
        bool CheckFileExists { get; set; }
        /// <summary>
        /// 当用户指定了不存在的文件路径和文件名，文件对话框是否显示警告。
        /// </summary>
        bool CheckPathExists { get; set; }
        /// <summary>
        /// 指定用来筛选现实的文件列表的默认扩展名字符串。
        /// </summary>
        string DefaultExt { get; set; }
        /// <summary>
        /// 文件对话框中选定的文件的完整路径。
        /// </summary>
        string FileName { get; set; }
        /// <summary>
        /// 包含与选定的文件逐一对应的文件完整路径。
        /// </summary>
        string[] FileNames { get; }
        /// <summary>
        /// 筛选器字符串。
        /// </summary>
        string Filter { get; set; }
        /// <summary>
        /// 文件对话框的初始目录。
        /// </summary>
        string InitialDirectory { get; set; }
        /// <summary>
        /// 是否允许用户选择多个文件。
        /// </summary>
        bool Multiselect { get; set; }
        /// <summary>
        /// 对话框标题。
        /// </summary>
        string Title { get; set; }


        /// <summary>
        /// 显示对话框。
        /// </summary>
        /// <returns></returns>
        bool? ShowDialog();
    }
}
